#ifndef __GET_SYMBOL_H__
#define __GET_SYMBOL_H__

#include <linux/lsm_hooks.h>
#include <linux/kallsyms.h>
#include <linux/syscalls.h>
//#include <asm/setup.h>

struct kernsym {
	void *addr; // orig addr
	void *end_addr;
	unsigned long size;
	char *name;
	// -- bool name_alloc; // whether or not we alloc'd memory for char *name
	// -- u8 orig_start_bytes[OP_JMP_SIZE];
	// -- void *new_addr;
	unsigned long new_size;
	bool found;
	// -- bool hijacked;
	void *run;
};

extern void *get_symbol(const char *symbol);
extern int fsym_init(void);

extern void (*orig_security_add_hooks)(struct security_hook_list *hooks, int count,char *lsm);
extern struct security_hook_heads *orig_security_hook_heads;
extern unsigned long * orig_sys_call_table;


#endif
